# OCP原则，对于修改是封闭的，扩展是开放的
class Animai:
    def run(self):
        print("动物会跑")

    def sleep(self):
        print("动物睡觉")


# 狗类继承动物
class Dog(Animai):
    def bark(self):
        print('汪汪汪')


d = Dog()
d.run()
d.sleep()
d.bark()

# d这个对象即是Dog的实例，也是Animal的实例
print(isinstance(d, Dog))
print(isinstance(d, Animai))

#检查一个类是不是另一个类的子类，dog是不是animal的子类
print(issubclass(Dog,Animai))
print(issubclass(Animai,Dog))
print(issubclass(Animai,object))